package com.link.common.packet.resp;

import com.link.common.packet.ResponseOperate;
import com.link.common.util.BinaryUtils;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;

public record LoginPacketResp (boolean register,boolean status, boolean isAdult,String token){
    public ByteBuf toBinary( ChannelHandlerContext ctx   ){
        ByteBuf buffer =    ctx.alloc().buffer(length());
        buffer.writeInt(ResponseOperate.LOGIN.code);
        buffer.writeByte(register()?(byte)1:(byte)0);

        buffer.writeByte(status()?(byte)1:(byte)0);
        buffer.writeByte(isAdult()?(byte)1:(byte)0);
        BinaryUtils.writeString(buffer,token());


        return buffer;
    }
    public int length(){
        return 11+BinaryUtils.getStringLength(token());
    }
}